package com.daniel.design.pattern.singleton.demo7;

/**
 * @ClassName Singleton
 * @Description 懒汉式（静态内部类）
 * @Author Daniel
 * @Version V1.0.0
 */
public class Singleton {
    /**
     * 私有化构造函数
     */
    private Singleton() {
    }

    /**
     * 对外提供静态方法获取静态变量
     *
     * @return
     */
    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }

    /**
     * 定义静态内部类
     */
    private static class Holder {
        // 在内部类中声明并初始化外部类的对象
        private static final Singleton INSTANCE = new Singleton();
    }
}
